.TH NODE-L3QD "8" "October 2023" "L3q node daemon" "System Administration"
.SH NAME
node-l3qd \- L3q node daemon. \fBLight\fR, \fBlight\fR, \fBlight\fRweight \fBqueue\fR. L3Q is a system to run processes/programs in parallell or in sequence on multiple nodes.
.SH SYNOPSIS
.B node-l3qd
[\fI\,OPTION\/\fR]...
.SH DESCRIPTION
.PP
Node-l3qd is the L3Q node daemon that handles execution of tasks on a specific compute node. The central L3Q daemon (l3qd) schedules tasks to node daemons that runs on compute nodes and sends jobs that contains one or more tasks to node daemons using TCP/IP protocol. The node daemon receives jobs over https POST with json data describing jobs and tasks. The node daemon uses systemd to to execute programs in specified systemd slice (default l3q.slice), where processes can be limited.
.br
New self signed certificates are generated when node-l3qd is started in daemon mode, with the --daemon flag. At evert start new certificates are genererated and used to serve https. 
.br
Node-l3qd includes a \fBvalidate\fR daemon for easy setup of validating this node with the l3q daemon(l3qd), by using the \fB--validate\fR option. This validation must be done before a node daemon is able to communicate with the l3q daemon.
.br
Node-l3qd also includes a status thread that runs at even intervals. This status thread collect the current status of running tasks and sends the information to the central l3q daemon over https POST as json data. Terminated tasks are also cleaned up. If l3qd is not available over network, status is saved to local database until l3qd is available over network and information continues to be sent to l3qd.
.br
If node-l3qd is stopped or terminated the central l3q daemon will not get status updates but tasks and processes will continue to run independent from node-l3qd.
.br
Starts in normal mode, as a daemon, with the argument: \fB--daemon\fR.
.PP
Manual steps that needs to be done after installation is to validate this node-l3qd with the central l3q daemon, using the flag \fB--validate\fR. Without the validation l3qd will not communicate with this node daemon.
.SH OPTIONS
.TP
\fB\-\-validate\fR
Executes the validate daemon.
Instructions will be printed at start up.
All node daemons have to be validated with the L3q daemon before the deamon accept communication from node daemons. This validation has to be done for each node daemon.
When validate daemon is started it will try to open the port next after the node daemon and will continue to increase the port number until it succeeds or too many ports has been tested. The validate daemon will in that case fail with an error.
.TP
\fB\-\-status\fR
Or without any arguments.
Prints information about running tasks on this node daemon.
.TP
\fB\-\-daemon\fR
Will start in daemon mode, start processing tasks and communicating with central L3q  daemon (l3qd). This is the normal operation mode. If daemon is not running status on running tasks will not be updated. If daemon is not running new tasks can not be received from l3qd and new tasks will not be launched. Central l3q daemon (l3qd) will show this node as offline as it can not be reached.
.TP
\fB-V\fR, \fB\-\-version\fR
Prints version text and exit
.TP
\fB\-h\fR, \fB\-\-help\fR
Prints help text and exit
.SH FILES
/etc/l3q/node-l3qd.conf
.br
/var/lib/l3q/node-l3qd.db
.br
/var/lib/l3q/task-output/*
.br
/var/log/l3q/node-l3qd.log
.br
/usr/lib/systemd/system/node-l3qd.service
.br
/usr/lib/systemd/system/l3q.slice
.br
/etc/polkit-1/rules.d/l3q.rules
.SH AUTHOR
Written by Marcus Pedersén
.SH "REPORTING BUGS"
<https://notabug.org/marcux/l3q>
.SH COPYRIGHT
Copyright \(co 2023 Marcus Pedersén
.br
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
.br
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
.SH "SEE ALSO"
node-l3qd.conf(5)
